import { login } from '../../api/user'
// 引入cookie函数
import { setToken, getToken } from '@/utils/auth'
import { getProfile, getMoreProfile } from '@/api/user'
// TODO :vuex-user
const state = {
  token: getToken() || '',
  user_data: {}
}
const mutations = {
  setToken(state, data) {
    // 使用localStorage持久化
    // localStorage.setItem('hrToken', data)
    // 使用cookie设置token
    setToken(data)
    state.token = data
    // 记录存入token的时间
    localStorage.setItem('token_time', Date.now())
  },
  // 将获取到的用户数据存储到vuex
  set_user_data(state, data) {
    state.user_data = data
  },

  // 清除token
  removeToken(state) {
    state.token = ''
  },
  // 清除个人信息
  removeUserData(state) {
    state.user_data = ''
  }
}
const actions = {
  async to_login(store, data) {
    const res = await login(data)
    store.commit('setToken', res)
  },
  // 获取用户数据
  async get_user_data(store) {
    const data = await getProfile()
    // 获取员工更多信息

    const moreData = await getMoreProfile(data.userId)
    // 执行
    store.commit('set_user_data', { ...data, ...moreData })
  },
  // 将退出函数封装
  exitFn(store) {
    // 清除vuex中的token
    store.commit('removeToken')
    store.commit('removeUserData')
    // 清除cook
  }

}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}

